﻿#ifndef LOOPTHREADPOOL_H
#define LOOPTHREADPOOL_H

#include <vector>

class LoopThread;
class EventLoop;

class LoopThreadPool
{
private:
    // 线程池大小
    int m_threadCount;
    // 当前线程索引
    int m_nextLoopStep;
    // 基础事件循环
    EventLoop* m_baseLoop;
    // 线程池
    std::vector<LoopThread*> m_threads;
    // 事件循环池
    std::vector<EventLoop*> m_loops;
public:
    LoopThreadPool(EventLoop* baseloop);
    ~LoopThreadPool();
    // 设置线程池大小
    void setThreadCount(int threadCount);
    // 创建线程池
    void create();
    // 获取下一个事件循环
    EventLoop* nextLoop();
};

#endif // LOOPTHREADPOOL_H
